--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / messages / MessagesPage.vue
Displaying Raw • Download
meshchatx/src/frontend/components/messages/MessagesPage.vue d8d147581c7b04f65abccdefc1e1e623d3fcbcb1 (d8d14758) Text, 28.32 KB
Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-1 min-w-0 h-full overflow-hidden"Tb4b4b4>
Tb4b4b4<Tff7b72MessagesSidebar
Te6edf3v-ifTff7b72=Ta5d6ff"Tff7b72!Te6edf3isPopoutModeTa5d6ff"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4{ Ta5d6ff'hidden sm:flex'Tff7b72: Te6edf3destinationHash Tb4b4b4}Ta5d6ff"
Tb4b4b4:Te6edf3conversationsTff7b72=Ta5d6ff"Te6edf3conversationsTa5d6ff"
Tb4b4b4:Te6edf3peersTff7b72=Ta5d6ff"Te6edf3peersTa5d6ff"
Tb4b4b4:Te6edf3foldersTff7b72=Ta5d6ff"Te6edf3foldersTa5d6ff"
Tb4b4b4:Te6edf3selected-folder-idTff7b72=Ta5d6ff"Te6edf3selectedFolderIdTa5d6ff"
Tb4b4b4:Te6edf3selected-destination-hashTff7b72=Ta5d6ff"Te6edf3selectedPeerTff7b72?Tb4b4b4.Te6edf3destination_hashTa5d6ff"
Tb4b4b4:Te6edf3conversation-search-termTff7b72=Ta5d6ff"Te6edf3conversationSearchTermTa5d6ff"
Tb4b4b4:Te6edf3filter-unread-onlyTff7b72=Ta5d6ff"Te6edf3filterUnreadOnlyTa5d6ff"
Tb4b4b4:Te6edf3filter-failed-onlyTff7b72=Ta5d6ff"Te6edf3filterFailedOnlyTa5d6ff"
Tb4b4b4:Te6edf3filter-has-attachments-onlyTff7b72=Ta5d6ff"Te6edf3filterHasAttachmentsOnlyTa5d6ff"
Tb4b4b4:Te6edf3is-loadingTff7b72=Ta5d6ff"Te6edf3isLoadingConversationsTa5d6ff"
Tb4b4b4:Te6edf3is-loading-moreTff7b72=Ta5d6ff"Te6edf3isLoadingMoreTa5d6ff"
Tb4b4b4:Te6edf3has-more-conversationsTff7b72=Ta5d6ff"Te6edf3hasMoreConversationsTa5d6ff"
Tb4b4b4:Te6edf3is-loading-more-announcesTff7b72=Ta5d6ff"Te6edf3isLoadingMoreAnnouncesTa5d6ff"
Tb4b4b4:Te6edf3has-more-announcesTff7b72=Ta5d6ff"Te6edf3hasMoreAnnouncesTa5d6ff"
Tb4b4b4:Te6edf3peers-search-termTff7b72=Ta5d6ff"Te6edf3peersSearchTermTa5d6ff"
Tb4b4b4:Te6edf3total-peers-countTff7b72=Ta5d6ff"Te6edf3totalPeersCountTa5d6ff"
Tb4b4b4@Te6edf3conversation-clickTff7b72=Ta5d6ff"Te6edf3onConversationClickTa5d6ff"
Tb4b4b4@Te6edf3peer-clickTff7b72=Ta5d6ff"Te6edf3onPeerClickTa5d6ff"
Tb4b4b4@Te6edf3conversation-search-changedTff7b72=Ta5d6ff"Te6edf3onConversationSearchChangedTa5d6ff"
Tb4b4b4@Te6edf3conversation-filter-changedTff7b72=Ta5d6ff"Te6edf3onConversationFilterChangedTa5d6ff"
Tb4b4b4@Te6edf3peers-search-changedTff7b72=Ta5d6ff"Te6edf3onPeersSearchChangedTa5d6ff"
Tb4b4b4@Te6edf3ingest-paper-messageTff7b72=Ta5d6ff"Te6edf3openIngestPaperMessageModalTa5d6ff"
Tb4b4b4@Te6edf3load-moreTff7b72=Ta5d6ff"Te6edf3loadMoreConversationsTa5d6ff"
Tb4b4b4@Te6edf3load-more-announcesTff7b72=Ta5d6ff"Te6edf3loadMoreAnnouncesTa5d6ff"
Tb4b4b4@Te6edf3folder-clickTff7b72=Ta5d6ff"Te6edf3onFolderClickTa5d6ff"
Tb4b4b4@Te6edf3create-folderTff7b72=Ta5d6ff"Te6edf3onCreateFolderTa5d6ff"
Tb4b4b4@Te6edf3rename-folderTff7b72=Ta5d6ff"Te6edf3onRenameFolderTa5d6ff"
Tb4b4b4@Te6edf3delete-folderTff7b72=Ta5d6ff"Te6edf3onDeleteFolderTa5d6ff"
Tb4b4b4@Te6edf3move-to-folderTff7b72=Ta5d6ff"Te6edf3onMoveToFolderTa5d6ff"
Tb4b4b4@Te6edf3bulk-mark-as-readTff7b72=Ta5d6ff"Te6edf3onBulkMarkAsReadTa5d6ff"
Tb4b4b4@Te6edf3bulk-deleteTff7b72=Ta5d6ff"Te6edf3onBulkDeleteTa5d6ff"
Tb4b4b4@Te6edf3export-foldersTff7b72=Ta5d6ff"Te6edf3onExportFoldersTa5d6ff"
Tb4b4b4@Te6edf3import-foldersTff7b72=Ta5d6ff"Te6edf3onImportFoldersTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex-col flex-1 overflow-hidden min-w-0 bg-gradient-to-br from-white via-slate-50 to-slate-100 dark:from-zinc-950 dark:via-zinc-900 dark:to-zinc-900/80"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Te6edf3destinationHash Tff7b72? Ta5d6ff'flex' Tff7b72: Ta5d6ff'hidden sm:flex'Ta5d6ff"
Tb4b4b4>
T8b949e<!-- messages tab -->
Tb4b4b4<Tff7b72ConversationViewer
Te6edf3refTff7b72=Ta5d6ff"conversation-viewer"
Tb4b4b4:Te6edf3configTff7b72=Ta5d6ff"Te6edf3configTa5d6ff"
Tb4b4b4:Te6edf3my-lxmf-address-hashTff7b72=Ta5d6ff"Te6edf3configTff7b72?Tb4b4b4.Te6edf3lxmf_address_hashTa5d6ff"
Tb4b4b4:Te6edf3selected-peerTff7b72=Ta5d6ff"Te6edf3selectedPeerTa5d6ff"
Tb4b4b4:Te6edf3conversationsTff7b72=Ta5d6ff"Te6edf3conversationsTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3selected-peerTff7b72=Ta5d6ff"Te6edf3onPeerClickTa5d6ff"
Tb4b4b4@Te6edf3update-peer-trackingTff7b72=Ta5d6ff"Te6edf3onUpdatePeerTrackingTa5d6ff"
Tb4b4b4@Te6edf3closeTff7b72=Ta5d6ff"Te6edf3onCloseConversationViewerTa5d6ff"
Tb4b4b4@Te6edf3reload-conversationsTff7b72=Ta5d6ff"Te6edf3getConversationsTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Ingest Paper Message Modal -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isIngestModalOpenTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm"
Tb4b4b4@Te6edf3clickTb4b4b4.Te6edf3selfTff7b72=Ta5d6ff"Te6edf3isIngestModalOpen Tff7b72= Tff7b72falseTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"w-full max-w-md bg-white dark:bg-zinc-900 rounded-2xl shadow-2xl overflow-hidden"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"px-6 py-4 border-b border-gray-100 dark:border-zinc-800 flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-lg font-bold text-gray-900 dark:text-white"Tb4b4b4>Ingest Paper MessageTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"text-gray-400 hover:text-gray-500 dark:hover:text-zinc-300 transition-colors"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3isIngestModalOpen Tff7b72= Tff7b72falseTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"close" Te6edf3classTff7b72=Ta5d6ff"size-6" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-6"Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-600 dark:text-zinc-400 mb-4"Tb4b4b4>
You can read LXMF paper messages by scanning a QR code or pasting an Tb4b4b4<Tff7b72strongTb4b4b4>lxmf://Tb4b4b4<Tb4b4b4/Tff7b72strongTb4b4b4> or
Tb4b4b4<Tff7b72strongTb4b4b4>lxm://Tb4b4b4<Tb4b4b4/Tff7b72strongTb4b4b4> link. Contact-sharing links using Tb4b4b4<Tff7b72strongTb4b4b4>lxma://Tb4b4b4<Tb4b4b4/Tff7b72strongTb4b4b4> are also
supported.
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72label
Te6edf3classTff7b72=Ta5d6ff"block text-xs font-medium text-gray-500 dark:text-zinc-500 uppercase tracking-wider mb-1"
Tb4b4b4>
LXMF URI
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3ingestUriTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3placeholderTff7b72=Ta5d6ff"lxmf://... or lxma://..."
Te6edf3classTff7b72=Ta5d6ff"block w-full rounded-lg border-0 py-2 text-gray-900 dark:text-white shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-zinc-800 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-blue-600 sm:text-sm dark:bg-zinc-900"
Tb4b4b4@Te6edf3keydownTb4b4b4.Te6edf3enterTff7b72=Ta5d6ff"Te6edf3ingestPaperMessageTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"px-3 py-2 bg-gray-100 dark:bg-zinc-800 text-gray-700 dark:text-zinc-300 rounded-lg hover:bg-gray-200 dark:hover:bg-zinc-700 transition-colors"
Te6edf3titleTff7b72=Ta5d6ff"Paste from Clipboard"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3pasteFromClipboardTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"clipboard-text-outline" Te6edf3classTff7b72=Ta5d6ff"size-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"w-full flex justify-center py-2.5 px-4 border border-transparent rounded-xl shadow-sm text-sm font-bold text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 transition-all"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Tff7b72!Te6edf3ingestUriTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3ingestPaperMessageTa5d6ff"
Tb4b4b4>
Read LXM
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3WebSocketConnection Tff7b72from Ta5d6ff"../../js/WebSocketConnection"Tb4b4b4;
Tff7b72import Te6edf3MessagesSidebar Tff7b72from Ta5d6ff"./MessagesSidebar.vue"Tb4b4b4;
Tff7b72import Te6edf3ConversationViewer Tff7b72from Ta5d6ff"./ConversationViewer.vue"Tb4b4b4;
Tff7b72import Te6edf3GlobalState Tff7b72from Ta5d6ff"../../js/GlobalState"Tb4b4b4;
Tff7b72import Te6edf3DialogUtils Tff7b72from Ta5d6ff"../../js/DialogUtils"Tb4b4b4;
Tff7b72import Te6edf3GlobalEmitter Tff7b72from Ta5d6ff"../../js/GlobalEmitter"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"MessagesPage"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3ConversationViewerTb4b4b4,
Te6edf3MessagesSidebarTb4b4b4,
Te6edf3MaterialDesignIconTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3propsTff7b72: Tb4b4b4{
Te6edf3destinationHashTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657StringTb4b4b4,
Te6edf3requiredTff7b72: Tff7b72falseTb4b4b4,
Tff7b72defaultTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3reloadIntervalTff7b72: Tff7b72nullTb4b4b4,
Te6edf3conversationRefreshTimeoutTff7b72: Tff7b72nullTb4b4b4,
Te6edf3configTff7b72: Tff7b72nullTb4b4b4,
Te6edf3hasLoadedConversationsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3peersTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3selectedPeerTff7b72: Tff7b72nullTb4b4b4,
Te6edf3conversationsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3foldersTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3selectedFolderIdTff7b72: Tff7b72nullTb4b4b4,
Te6edf3pageSizeTff7b72: T79c0ff50Tb4b4b4,
Te6edf3hasMoreConversationsTff7b72: Tff7b72trueTb4b4b4,
Te6edf3isLoadingMoreTff7b72: Tff7b72falseTb4b4b4,
Te6edf3hasMoreAnnouncesTff7b72: Tff7b72trueTb4b4b4,
Te6edf3isLoadingMoreAnnouncesTff7b72: Tff7b72falseTb4b4b4,
Te6edf3totalPeersCountTff7b72: T79c0ff0Tb4b4b4,
Te6edf3peersSearchTermTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3lxmfDeliveryAnnouncesTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3conversationSearchTermTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3filterUnreadOnlyTff7b72: Tff7b72falseTb4b4b4,
Te6edf3filterFailedOnlyTff7b72: Tff7b72falseTb4b4b4,
Te6edf3filterHasAttachmentsOnlyTff7b72: Tff7b72falseTb4b4b4,
Te6edf3isLoadingConversationsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3isIngestModalOpenTff7b72: Tff7b72falseTb4b4b4,
Te6edf3ingestUriTff7b72: Ta5d6ff""Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3popoutRouteTypeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$routeTff7b72?Tb4b4b4.Te6edf3metaTff7b72?Tb4b4b4.Te6edf3popoutTypeTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3$routeTb4b4b4.Te6edf3metaTb4b4b4.Te6edf3popoutTypeTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3$routeTff7b72?Tb4b4b4.Te6edf3queryTff7b72?Tb4b4b4.Te6edf3popout Tff7b72?? Tff7b72thisTb4b4b4.Te6edf3getHashPopoutValueTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isPopoutModeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3popoutRouteType Tff7b72=== Ta5d6ff"conversation"Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3watchTff7b72: Tb4b4b4{
Te6edf3conversationsTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// update global state
Te6edf3GlobalStateTb4b4b4.Te6edf3unreadConversationsCount Tff7b72= Tff7b72thisTb4b4b4.Te6edf3conversationsTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3conversationTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3conversationTb4b4b4.Te6edf3is_unreadTb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3destinationHashTb4b4b4(Te6edf3newHashTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3newHashTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3onComposeNewMessageTb4b4b4(Te6edf3newHashTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3beforeUnmountTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3clearIntervalTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3reloadIntervalTb4b4b4)Tb4b4b4;
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3conversationRefreshTimeoutTb4b4b4)Tb4b4b4;
T8b949e// stop listening for websocket messages
Te6edf3WebSocketConnectionTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"message"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3onWebsocketMessageTb4b4b4)Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"compose-new-message"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3onComposeNewMessageTb4b4b4)Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"refresh-conversations"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3requestConversationsRefreshTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// listen for websocket messages
Te6edf3WebSocketConnectionTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"message"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3onWebsocketMessageTb4b4b4)Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"compose-new-message"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3onComposeNewMessageTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3getConfigTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3getFoldersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3getLxmfDeliveryAnnouncesTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// update info every few seconds
Tff7b72thisTb4b4b4.Te6edf3reloadInterval Tff7b72= Te6edf3setIntervalTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3getFoldersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff5000Tb4b4b4)Tb4b4b4;
T8b949e// compose message if a destination hash was provided on page load
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3destinationHashTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3onComposeNewMessageTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3destinationHashTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Tff7b72async Te6edf3onComposeNewMessageTb4b4b4(Te6edf3destinationHashTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3destinationHash Tff7b72== Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3selectedPeerTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3$nextTickTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3composeInput Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"compose-input"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3composeInputTb4b4b4) Tb4b4b4{
Te6edf3composeInputTb4b4b4.Te6edf3focusTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3destinationHashTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"lxmf@"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3destinationHash Tff7b72= Te6edf3destinationHashTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"lxmf@"Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getLxmfDeliveryAnnounceTb4b4b4(Te6edf3destinationHashTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3existingPeer Tff7b72= Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3destinationHashTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3existingPeerTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3onPeerClickTb4b4b4(Te6edf3existingPeerTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3destinationHashTb4b4b4.Te6edf3length Tff7b72!== T79c0ff32Tb4b4b4) Tb4b4b4{
Te6edf3DialogUtilsTb4b4b4.Te6edf3alertTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"common.invalid_address"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3onPeerClickTb4b4b4(Tb4b4b4{
Te6edf3display_nameTff7b72: Ta5d6ff"Unknown Peer"Tb4b4b4,
Te6edf3destination_hashTff7b72: Te6edf3destinationHashTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/configTa5d6ff`Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3config Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// do nothing if failed to load config
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onWebsocketMessageTb4b4b4(Te6edf3messageTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3json Tff7b72= Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3dataTb4b4b4)Tb4b4b4;
Tff7b72switch Tb4b4b4(Te6edf3jsonTb4b4b4.Te6edf3typeTb4b4b4) Tb4b4b4{
Tff7b72case Ta5d6ff"config"Tff7b72: Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3config Tff7b72= Te6edf3jsonTb4b4b4.Te6edf3configTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tff7b72case Ta5d6ff"announce"Tff7b72: Tb4b4b4{
Tff7b72const Te6edf3aspect Tff7b72= Te6edf3jsonTb4b4b4.Te6edf3announceTb4b4b4.Te6edf3aspectTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3aspect Tff7b72=== Ta5d6ff"lxmf.delivery"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3updatePeerFromAnnounceTb4b4b4(Te6edf3jsonTb4b4b4.Te6edf3announceTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tff7b72case Ta5d6ff"lxmf.delivery"Tff7b72: Tb4b4b4{
T8b949e// reload conversations when a new message is received
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tff7b72case Ta5d6ff"lxmf.telemetry"Tff7b72: Tb4b4b4{
T8b949e// update tracking status if peer matches
Tff7b72const Te6edf3destHash Tff7b72= Te6edf3jsonTb4b4b4.Te6edf3destination_hashTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3destHashTb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3destHashTb4b4b4]Tb4b4b4.Te6edf3is_tracking Tff7b72= Te6edf3jsonTb4b4b4.Te6edf3is_trackingTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3selectedPeer Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3selectedPeerTb4b4b4.Te6edf3destination_hash Tff7b72=== Te6edf3destHashTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedPeerTb4b4b4.Te6edf3is_tracking Tff7b72= Te6edf3jsonTb4b4b4.Te6edf3is_trackingTb4b4b4;
Tb4b4b4}
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tff7b72case Ta5d6ff"lxm.ingest_uri.result"Tff7b72: Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3jsonTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff"success"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3ingestUri Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3jsonTb4b4b4.Te6edf3ingest_type Tff7b72=== Ta5d6ff"lxma_contact" Tff7b72&& Te6edf3jsonTb4b4b4.Te6edf3destination_hashTb4b4b4) Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3onComposeNewMessageTb4b4b4(Te6edf3jsonTb4b4b4.Te6edf3destination_hashTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getLxmfDeliveryAnnouncesTb4b4b4(Te6edf3append Tff7b72= Tff7b72falseTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3offset Tff7b72= Te6edf3append Tff7b72? Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4)Tb4b4b4.Te6edf3length Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/announcesTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{
Te6edf3aspectTff7b72: Ta5d6ff"lxmf.delivery"Tb4b4b4,
Te6edf3limitTff7b72: Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4,
Te6edf3offsetTff7b72: Te6edf3offsetTb4b4b4,
Te6edf3searchTff7b72: Tff7b72thisTb4b4b4.Te6edf3peersSearchTermTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3newAnnounces Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3appendTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3peers Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3totalPeersCount Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3total_count Tff7b72|| T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3ann Tff7b72of Te6edf3newAnnouncesTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3updatePeerFromAnnounceTb4b4b4(Te6edf3annTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3hasMoreAnnounces Tff7b72= Te6edf3newAnnouncesTb4b4b4.Te6edf3length Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isLoadingMoreAnnounces Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3loadMoreAnnouncesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3isLoadingMoreAnnounces Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hasMoreAnnouncesTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isLoadingMoreAnnounces Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getLxmfDeliveryAnnouncesTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getLxmfDeliveryAnnounceTb4b4b4(Te6edf3destinationHashTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
T8b949e// fetch announce for destination hash
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/announcesTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{
Te6edf3destination_hashTff7b72: Te6edf3destinationHashTb4b4b4,
Te6edf3limitTff7b72: T79c0ff1Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// update ui
Tff7b72const Te6edf3lxmfDeliveryAnnounces Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3lxmfDeliveryAnnounce Tff7b72of Te6edf3lxmfDeliveryAnnouncesTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3updatePeerFromAnnounceTb4b4b4(Te6edf3lxmfDeliveryAnnounceTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// do nothing if failed to load announce
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getConversationsTb4b4b4(Te6edf3append Tff7b72= Tff7b72falseTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3shouldShowInitialLoading Tff7b72=
Tff7b72!Te6edf3append Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hasLoadedConversations Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3conversationsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3shouldShowInitialLoadingTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isLoadingConversations Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3offset Tff7b72= Te6edf3append Tff7b72? Tff7b72thisTb4b4b4.Te6edf3conversationsTb4b4b4.Te6edf3length Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/lxmf/conversationsTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{
Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3buildConversationQueryParamsTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3limitTff7b72: Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4,
Te6edf3offsetTff7b72: Te6edf3offsetTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3newConversations Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3conversationsTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3appendTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3conversations Tff7b72= Tb4b4b4[Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3conversationsTb4b4b4, Tb4b4b4...Te6edf3newConversationsTb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3conversations Tff7b72= Te6edf3newConversationsTb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3conversation Tff7b72of Te6edf3newConversationsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3conversationTff7b72?Tb4b4b4.Te6edf3destination_hashTb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72const Te6edf3existingPeer Tff7b72= Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3conversationTb4b4b4.Te6edf3destination_hashTb4b4b4] Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3conversationTb4b4b4.Te6edf3destination_hashTb4b4b4] Tff7b72= Tb4b4b4{
Tb4b4b4...Te6edf3existingPeerTb4b4b4,
Te6edf3destination_hashTff7b72: Te6edf3conversationTb4b4b4.Te6edf3destination_hashTb4b4b4,
Te6edf3display_nameTff7b72: Te6edf3conversationTb4b4b4.Te6edf3display_name Tff7b72?? Te6edf3existingPeerTb4b4b4.Te6edf3display_nameTb4b4b4,
Te6edf3custom_display_nameTff7b72: Te6edf3conversationTb4b4b4.Te6edf3custom_display_name Tff7b72?? Te6edf3existingPeerTb4b4b4.Te6edf3custom_display_nameTb4b4b4,
Te6edf3contact_imageTff7b72: Te6edf3conversationTb4b4b4.Te6edf3contact_image Tff7b72?? Te6edf3existingPeerTb4b4b4.Te6edf3contact_imageTb4b4b4,
Te6edf3lxmf_user_iconTff7b72: Te6edf3conversationTb4b4b4.Te6edf3lxmf_user_icon Tff7b72?? Te6edf3existingPeerTb4b4b4.Te6edf3lxmf_user_iconTb4b4b4,
Te6edf3updated_atTff7b72: Te6edf3conversationTb4b4b4.Te6edf3updated_at Tff7b72?? Te6edf3existingPeerTb4b4b4.Te6edf3updated_atTb4b4b4,
Te6edf3is_trackingTff7b72: Te6edf3conversationTb4b4b4.Te6edf3is_tracking Tff7b72?? Te6edf3existingPeerTb4b4b4.Te6edf3is_trackingTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3hasLoadedConversations Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3hasMoreConversations Tff7b72= Te6edf3newConversationsTb4b4b4.Te6edf3length Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isLoadingConversations Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isLoadingMore Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getFoldersTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/lxmf/folders"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3folders Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to load folders"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onCreateFolderTb4b4b4(Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/lxmf/folders"Tb4b4b4, Tb4b4b4{ Te6edf3name Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getFoldersTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.folder_created"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_create_folder"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onRenameFolderTb4b4b4(Tb4b4b4{ Te6edf3idTb4b4b4, Te6edf3name Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/lxmf/folders/Tffd700${Te6edf3idTffd700}Ta5d6ff`Tb4b4b4, Tb4b4b4{ Te6edf3name Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getFoldersTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.folder_renamed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_rename_folder"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onDeleteFolderTb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/lxmf/folders/Tffd700${Te6edf3idTffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3selectedFolderId Tff7b72=== Te6edf3idTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedFolderId Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getFoldersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.folder_deleted"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_delete_folder"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onMoveToFolderTb4b4b4(Tb4b4b4{ Te6edf3peer_hashesTb4b4b4, Te6edf3folder_id Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
T8b949e// Treat 0 as null (Uncategorized) for the backend
Tff7b72const Te6edf3targetFolderId Tff7b72= Te6edf3folder_id Tff7b72=== T79c0ff0 Tff7b72? Tff7b72null Tff7b72: Te6edf3folder_idTb4b4b4;
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/lxmf/conversations/move-to-folder"Tb4b4b4, Tb4b4b4{
Te6edf3peer_hashesTb4b4b4,
Te6edf3folder_idTff7b72: Te6edf3targetFolderIdTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.moved_to_folder"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_move_folder"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onBulkMarkAsReadTb4b4b4(Te6edf3destination_hashesTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/lxmf/conversations/bulk-mark-as-read"Tb4b4b4, Tb4b4b4{
Te6edf3destination_hashesTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.marked_read"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_mark_read"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onBulkDeleteTb4b4b4(Te6edf3destination_hashesTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3confirmed Tff7b72= Tff7b72await Te6edf3DialogUtilsTb4b4b4.Te6edf3confirmTb4b4b4(
Ta5d6ff"Are you sure you want to delete these conversations? All messages will be lost."Tb4b4b4,
Ta5d6ff"Delete Conversations"
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3confirmedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/lxmf/conversations/bulk-delete"Tb4b4b4, Tb4b4b4{
Te6edf3destination_hashesTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.conversations_deleted"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_delete_conversations"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onExportFoldersTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/lxmf/folders/export"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3data Tff7b72= Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4, Tff7b72nullTb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3blob Tff7b72= Tff7b72new Te6edf3BlobTb4b4b4(Tb4b4b4[Te6edf3dataTb4b4b4]Tb4b4b4, Tb4b4b4{ Te6edf3typeTff7b72: Ta5d6ff"application/json" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3url Tff7b72= Te6edf3URLTb4b4b4.Te6edf3createObjectURLTb4b4b4(Te6edf3blobTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3a Tff7b72= Tffa657documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"a"Tb4b4b4)Tb4b4b4;
Te6edf3aTb4b4b4.Te6edf3href Tff7b72= Te6edf3urlTb4b4b4;
Te6edf3aTb4b4b4.Te6edf3download Tff7b72= Ta5d6ff`Ta5d6ffmeshchatx-folders-Tffd700${Tff7b72new Tffa657DateTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toISOStringTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff10Tb4b4b4)Tffd700}Ta5d6ff.jsonTa5d6ff`Tb4b4b4;
Te6edf3aTb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_export_folders"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onImportFoldersTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3input Tff7b72= Tffa657documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"input"Tb4b4b4)Tb4b4b4;
Te6edf3inputTb4b4b4.Te6edf3type Tff7b72= Ta5d6ff"file"Tb4b4b4;
Te6edf3inputTb4b4b4.Te6edf3accept Tff7b72= Ta5d6ff".json"Tb4b4b4;
Te6edf3inputTb4b4b4.Te6edf3onchange Tff7b72= Tff7b72async Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3file Tff7b72= Te6edf3eTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3filesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fileTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3reader Tff7b72= Tff7b72new Te6edf3FileReaderTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3readerTb4b4b4.Te6edf3onload Tff7b72= Tff7b72async Tb4b4b4(Te6edf3reTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3data Tff7b72= Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3reTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3resultTb4b4b4)Tb4b4b4;
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/lxmf/folders/import"Tb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getFoldersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.folders_imported"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_import_folders"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Te6edf3readerTb4b4b4.Te6edf3readAsTextTb4b4b4(Te6edf3fileTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3inputTb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onFolderClickTb4b4b4(Te6edf3folderIdTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedFolderId Tff7b72= Te6edf3folderIdTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3requestConversationsRefreshTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3loadMoreConversationsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3isLoadingMore Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hasMoreConversationsTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isLoadingMore Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3buildConversationQueryParamsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3params Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3conversationSearchTerm Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3conversationSearchTermTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Tff7b72!== Ta5d6ff""Tb4b4b4) Tb4b4b4{
Te6edf3paramsTb4b4b4.Te6edf3search Tff7b72= Tff7b72thisTb4b4b4.Te6edf3conversationSearchTermTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3filterUnreadOnlyTb4b4b4) Tb4b4b4{
Te6edf3paramsTb4b4b4.Te6edf3filter_unread Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3filterFailedOnlyTb4b4b4) Tb4b4b4{
Te6edf3paramsTb4b4b4.Te6edf3filter_failed Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3filterHasAttachmentsOnlyTb4b4b4) Tb4b4b4{
Te6edf3paramsTb4b4b4.Te6edf3filter_has_attachments Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3selectedFolderId Tff7b72!== Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3paramsTb4b4b4.Te6edf3folder_id Tff7b72= Tff7b72thisTb4b4b4.Te6edf3selectedFolderIdTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3paramsTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3updatePeerFromAnnounceTff7b72: Tff7b72function Tb4b4b4(Te6edf3announceTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3existing Tff7b72= Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3announceTb4b4b4.Te6edf3destination_hashTb4b4b4] Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3announceTb4b4b4.Te6edf3destination_hashTb4b4b4] Tff7b72= Tb4b4b4{ Tb4b4b4...Te6edf3existingTb4b4b4, Tb4b4b4...Te6edf3announce Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onUpdatePeerTrackingTb4b4b4(Tb4b4b4{ Te6edf3destination_hashTb4b4b4, Te6edf3is_tracking Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3destination_hashTb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3peersTb4b4b4[Te6edf3destination_hashTb4b4b4]Tb4b4b4.Te6edf3is_tracking Tff7b72= Te6edf3is_trackingTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3selectedPeer Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3selectedPeerTb4b4b4.Te6edf3destination_hash Tff7b72=== Te6edf3destination_hashTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedPeerTb4b4b4.Te6edf3is_tracking Tff7b72= Te6edf3is_trackingTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3onPeerClickTff7b72: Tff7b72function Tb4b4b4(Te6edf3peerTb4b4b4) Tb4b4b4{
T8b949e// update selected peer
Tff7b72thisTb4b4b4.Te6edf3selectedPeer Tff7b72= Te6edf3peerTb4b4b4;
T8b949e// update current route
Tff7b72const Te6edf3routeName Tff7b72= Tff7b72thisTb4b4b4.Te6edf3isPopoutMode Tff7b72? Ta5d6ff"messages-popout" Tff7b72: Ta5d6ff"messages"Tb4b4b4;
Tff7b72const Te6edf3routeOptions Tff7b72= Tb4b4b4{
Te6edf3nameTff7b72: Te6edf3routeNameTb4b4b4,
Te6edf3paramsTff7b72: Tb4b4b4{
Te6edf3destinationHashTff7b72: Te6edf3peerTb4b4b4.Te6edf3destination_hashTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3isPopoutMode Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3$routeTff7b72?Tb4b4b4.Te6edf3queryTb4b4b4) Tb4b4b4{
Te6edf3routeOptionsTb4b4b4.Te6edf3query Tff7b72= Tb4b4b4{ Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3$routeTb4b4b4.Te6edf3query Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3$routerTb4b4b4.Te6edf3replaceTb4b4b4(Te6edf3routeOptionsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onConversationClickTff7b72: Tff7b72function Tb4b4b4(Te6edf3conversationTb4b4b4) Tb4b4b4{
T8b949e// object must stay compatible with format of peers
Tff7b72thisTb4b4b4.Te6edf3onPeerClickTb4b4b4(Te6edf3conversationTb4b4b4)Tb4b4b4;
T8b949e// mark conversation as read
Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4[Ta5d6ff"conversation-viewer"Tb4b4b4]Tb4b4b4.Te6edf3markConversationAsReadTb4b4b4(Te6edf3conversationTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onCloseConversationViewerTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// clear selected peer
Tff7b72thisTb4b4b4.Te6edf3selectedPeer Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3isPopoutModeTb4b4b4) Tb4b4b4{
Tffa657windowTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
T8b949e// update current route
Tff7b72const Te6edf3routeName Tff7b72= Tff7b72thisTb4b4b4.Te6edf3isPopoutMode Tff7b72? Ta5d6ff"messages-popout" Tff7b72: Ta5d6ff"messages"Tb4b4b4;
Tff7b72const Te6edf3routeOptions Tff7b72= Tb4b4b4{ Te6edf3nameTff7b72: Te6edf3routeName Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3isPopoutMode Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3$routeTff7b72?Tb4b4b4.Te6edf3queryTb4b4b4) Tb4b4b4{
Te6edf3routeOptionsTb4b4b4.Te6edf3query Tff7b72= Tb4b4b4{ Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3$routeTb4b4b4.Te6edf3query Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3$routerTb4b4b4.Te6edf3replaceTb4b4b4(Te6edf3routeOptionsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3requestConversationsRefreshTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3conversationRefreshTimeoutTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3conversationRefreshTimeoutTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3conversationRefreshTimeout Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff250Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onConversationSearchChangedTb4b4b4(Te6edf3termTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3conversationSearchTerm Tff7b72= Te6edf3termTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3requestConversationsRefreshTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onConversationFilterChangedTb4b4b4(Te6edf3filterKeyTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3filterKey Tff7b72=== Ta5d6ff"unread"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3filterUnreadOnly Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3filterUnreadOnlyTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3filterKey Tff7b72=== Ta5d6ff"failed"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3filterFailedOnly Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3filterFailedOnlyTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3filterKey Tff7b72=== Ta5d6ff"attachments"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3filterHasAttachmentsOnly Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3filterHasAttachmentsOnlyTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3requestConversationsRefreshTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onPeersSearchChangedTb4b4b4(Te6edf3termTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3peersSearchTerm Tff7b72= Te6edf3termTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3peersRefreshTimeoutTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3peersRefreshTimeoutTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3peersRefreshTimeout Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3getLxmfDeliveryAnnouncesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff500Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3openIngestPaperMessageModalTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3ingestUri Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isIngestModalOpen Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3pasteFromClipboardTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3ingestUri Tff7b72= Tff7b72await Te6edf3navigatorTb4b4b4.Te6edf3clipboardTb4b4b4.Te6edf3readTextTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_read_clipboard"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3ingestPaperMessageTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3ingestUriTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3WebSocketConnectionTb4b4b4.Te6edf3sendTb4b4b4(
Tffa657JSONTb4b4b4.Te6edf3stringifyTb4b4b4(Tb4b4b4{
Te6edf3typeTff7b72: Ta5d6ff"lxm.ingest_uri"Tb4b4b4,
Te6edf3uriTff7b72: Tff7b72thisTb4b4b4.Te6edf3ingestUriTb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isIngestModalOpen Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"messages.failed_send_ingest"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3getHashPopoutValueTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3hash Tff7b72= Tffa657windowTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3hash Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3match Tff7b72= Te6edf3hashTb4b4b4.Te6edf3matchTb4b4b4(Ta5d6ff/popout=([^&]+)/Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3match Tff7b72? Tffa657decodeURIComponentTb4b4b4(Te6edf3matchTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4) Tff7b72: Tff7b72nullTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────